package com.naiterui.ehp.bs.patient.dao;

import com.naiterui.ehp.bp.domain.DrMessageConsultOrder;


/**
 * 图文咨询订单DAO接口
 * @author xuchong
 * @since 1.0.0
 */
public interface IDrMessageConsultOrderDao {

    void saveOrUpdate(DrMessageConsultOrder consultOrder);

    /**
     * 根据患者，医生，支付状态查询订单信息
     * IDrMessageConsultOrderDao.findByPatientAndDoctorAndPayStatus()
     * @Author xuchong
     * @Date 2017年3月31日
     * @since 1.0.0
     * @param patientId
     * @param doctorId
     * @param payStatus
     * @return
     */
    DrMessageConsultOrder findByPatientAndDoctorAndPayStatus(Long patientId, Long doctorId, Integer payStatus);

    /**
     * 根据患者，医生，会话状态查询订单信息
     * IDrMessageConsultOrderDao.findOrderByPatientAndDoctorAndConsultSessionStatus()
     * @Author xuchong
     * @Date 2017年3月31日
     * @since 1.0.0
     * @param patientId
     * @param doctorId
     * @param consultSessionStatus
     * @return
     */
    DrMessageConsultOrder findOrderByPatientAndDoctorAndConsultSessionStatus(Long patientId, Long doctorId, Integer consultSessionStatus);

    /**
     * 根据订单号查询订单信息
     * IDrMessageConsultOrderDao.findMessageConsultOrderByOrderSn()
     * @Author xuchong
     * @Date 2017年4月2日
     * @since 1.0.0
     * @param orderSn
     * @return
     */
    DrMessageConsultOrder findMessageConsultOrderByOrderSn(String orderSn);

    /**
     * 通过医生患者和session ID 获取会话信息
     * @param doctorId 医生ID
     * @param patientId 患者ID
     * @param sessionId
     * @return
     */
    DrMessageConsultOrder getBySessionId(Long patientId, Long doctorId, String sessionId);

    /**
     * 更新记录
     * @param messageConsultOrder
     * @return
     */
    DrMessageConsultOrder update(DrMessageConsultOrder messageConsultOrder);
}
